#ifndef COMMON_H
#define COMMON_H


#include "dirent.h"           // 目录操作相关，处理目录条目


// 定义一些常量，用于处理以GiB、MiB和KiB为单位的文件大小
// 使用自定义字面量操作符，使得可以直接使用1_GiB, 1_MiB, 1_KiB等单位
constexpr long long int operator"" _GiB(long long unsigned int val)
{
    return val * (1 << 30); // 返回对应的字节数，1GiB = 1 << 30 字节
}

constexpr long long int operator"" _MiB(long long unsigned int val)
{
    return val * (1 << 20); // 1MiB = 1 << 20 字节
}

constexpr long long int operator"" _KiB(long long unsigned int val)
{
    return val * (1 << 10); // 1KiB = 1 << 10 字节
}


#endif //COMMON_H

